package com.zj.osm.entity.db;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.zj.osm.entity.greendao.Equipment;
import com.zj.osm.entity.greendao.Lay;
import com.zj.osm.entity.greendao.Line;
import com.zj.osm.entity.greendao.Multimedia;
import com.zj.osm.entity.greendao.Online;
import com.zj.osm.entity.greendao.Photos;
import com.zj.osm.entity.greendao.Point;
import com.zj.osm.entity.greendao.PointAndLineBean;
import com.zj.osm.entity.greendao.PowerSupplyScheme;
import com.zj.osm.entity.greendao.PowerSupplySchemeDetails;
import com.zj.osm.entity.greendao.ProgramTab;
import com.zj.osm.entity.greendao.Project;

import com.zj.osm.entity.db.EquipmentDao;
import com.zj.osm.entity.db.LayDao;
import com.zj.osm.entity.db.LineDao;
import com.zj.osm.entity.db.MultimediaDao;
import com.zj.osm.entity.db.OnlineDao;
import com.zj.osm.entity.db.PhotosDao;
import com.zj.osm.entity.db.PointDao;
import com.zj.osm.entity.db.PointAndLineBeanDao;
import com.zj.osm.entity.db.PowerSupplySchemeDao;
import com.zj.osm.entity.db.PowerSupplySchemeDetailsDao;
import com.zj.osm.entity.db.ProgramTabDao;
import com.zj.osm.entity.db.ProjectDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig equipmentDaoConfig;
    private final DaoConfig layDaoConfig;
    private final DaoConfig lineDaoConfig;
    private final DaoConfig multimediaDaoConfig;
    private final DaoConfig onlineDaoConfig;
    private final DaoConfig photosDaoConfig;
    private final DaoConfig pointDaoConfig;
    private final DaoConfig pointAndLineBeanDaoConfig;
    private final DaoConfig powerSupplySchemeDaoConfig;
    private final DaoConfig powerSupplySchemeDetailsDaoConfig;
    private final DaoConfig programTabDaoConfig;
    private final DaoConfig projectDaoConfig;

    private final EquipmentDao equipmentDao;
    private final LayDao layDao;
    private final LineDao lineDao;
    private final MultimediaDao multimediaDao;
    private final OnlineDao onlineDao;
    private final PhotosDao photosDao;
    private final PointDao pointDao;
    private final PointAndLineBeanDao pointAndLineBeanDao;
    private final PowerSupplySchemeDao powerSupplySchemeDao;
    private final PowerSupplySchemeDetailsDao powerSupplySchemeDetailsDao;
    private final ProgramTabDao programTabDao;
    private final ProjectDao projectDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        equipmentDaoConfig = daoConfigMap.get(EquipmentDao.class).clone();
        equipmentDaoConfig.initIdentityScope(type);

        layDaoConfig = daoConfigMap.get(LayDao.class).clone();
        layDaoConfig.initIdentityScope(type);

        lineDaoConfig = daoConfigMap.get(LineDao.class).clone();
        lineDaoConfig.initIdentityScope(type);

        multimediaDaoConfig = daoConfigMap.get(MultimediaDao.class).clone();
        multimediaDaoConfig.initIdentityScope(type);

        onlineDaoConfig = daoConfigMap.get(OnlineDao.class).clone();
        onlineDaoConfig.initIdentityScope(type);

        photosDaoConfig = daoConfigMap.get(PhotosDao.class).clone();
        photosDaoConfig.initIdentityScope(type);

        pointDaoConfig = daoConfigMap.get(PointDao.class).clone();
        pointDaoConfig.initIdentityScope(type);

        pointAndLineBeanDaoConfig = daoConfigMap.get(PointAndLineBeanDao.class).clone();
        pointAndLineBeanDaoConfig.initIdentityScope(type);

        powerSupplySchemeDaoConfig = daoConfigMap.get(PowerSupplySchemeDao.class).clone();
        powerSupplySchemeDaoConfig.initIdentityScope(type);

        powerSupplySchemeDetailsDaoConfig = daoConfigMap.get(PowerSupplySchemeDetailsDao.class).clone();
        powerSupplySchemeDetailsDaoConfig.initIdentityScope(type);

        programTabDaoConfig = daoConfigMap.get(ProgramTabDao.class).clone();
        programTabDaoConfig.initIdentityScope(type);

        projectDaoConfig = daoConfigMap.get(ProjectDao.class).clone();
        projectDaoConfig.initIdentityScope(type);

        equipmentDao = new EquipmentDao(equipmentDaoConfig, this);
        layDao = new LayDao(layDaoConfig, this);
        lineDao = new LineDao(lineDaoConfig, this);
        multimediaDao = new MultimediaDao(multimediaDaoConfig, this);
        onlineDao = new OnlineDao(onlineDaoConfig, this);
        photosDao = new PhotosDao(photosDaoConfig, this);
        pointDao = new PointDao(pointDaoConfig, this);
        pointAndLineBeanDao = new PointAndLineBeanDao(pointAndLineBeanDaoConfig, this);
        powerSupplySchemeDao = new PowerSupplySchemeDao(powerSupplySchemeDaoConfig, this);
        powerSupplySchemeDetailsDao = new PowerSupplySchemeDetailsDao(powerSupplySchemeDetailsDaoConfig, this);
        programTabDao = new ProgramTabDao(programTabDaoConfig, this);
        projectDao = new ProjectDao(projectDaoConfig, this);

        registerDao(Equipment.class, equipmentDao);
        registerDao(Lay.class, layDao);
        registerDao(Line.class, lineDao);
        registerDao(Multimedia.class, multimediaDao);
        registerDao(Online.class, onlineDao);
        registerDao(Photos.class, photosDao);
        registerDao(Point.class, pointDao);
        registerDao(PointAndLineBean.class, pointAndLineBeanDao);
        registerDao(PowerSupplyScheme.class, powerSupplySchemeDao);
        registerDao(PowerSupplySchemeDetails.class, powerSupplySchemeDetailsDao);
        registerDao(ProgramTab.class, programTabDao);
        registerDao(Project.class, projectDao);
    }
    
    public void clear() {
        equipmentDaoConfig.clearIdentityScope();
        layDaoConfig.clearIdentityScope();
        lineDaoConfig.clearIdentityScope();
        multimediaDaoConfig.clearIdentityScope();
        onlineDaoConfig.clearIdentityScope();
        photosDaoConfig.clearIdentityScope();
        pointDaoConfig.clearIdentityScope();
        pointAndLineBeanDaoConfig.clearIdentityScope();
        powerSupplySchemeDaoConfig.clearIdentityScope();
        powerSupplySchemeDetailsDaoConfig.clearIdentityScope();
        programTabDaoConfig.clearIdentityScope();
        projectDaoConfig.clearIdentityScope();
    }

    public EquipmentDao getEquipmentDao() {
        return equipmentDao;
    }

    public LayDao getLayDao() {
        return layDao;
    }

    public LineDao getLineDao() {
        return lineDao;
    }

    public MultimediaDao getMultimediaDao() {
        return multimediaDao;
    }

    public OnlineDao getOnlineDao() {
        return onlineDao;
    }

    public PhotosDao getPhotosDao() {
        return photosDao;
    }

    public PointDao getPointDao() {
        return pointDao;
    }

    public PointAndLineBeanDao getPointAndLineBeanDao() {
        return pointAndLineBeanDao;
    }

    public PowerSupplySchemeDao getPowerSupplySchemeDao() {
        return powerSupplySchemeDao;
    }

    public PowerSupplySchemeDetailsDao getPowerSupplySchemeDetailsDao() {
        return powerSupplySchemeDetailsDao;
    }

    public ProgramTabDao getProgramTabDao() {
        return programTabDao;
    }

    public ProjectDao getProjectDao() {
        return projectDao;
    }

}
